home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 November: Tool Chest / Dev.CD Nov 94.toast / New System Software Extensions / Thread Manager Extension 2.0.1 / Debugging Tools / VoodooMonkey 1.0d23 Changes < prev    next >
Encoding:
Text File  |  1994-06-03  |  16.0 KB  |  427 lines  |  [TEXT/MPS ]

  1. VoodooMonkey Change History (edited for external release)
  2. Mike Lockwood
  3. October 28, 1993
  4.  
  5.  
  6. 1.0d23 Changes
  7.  
  8.     Put support for the AOCE Process Manager under System 7.1, reversing a change
  9.     in 1.0d22.  This allows DebuggerINIT to be compatible with the Drag Enabler 
  10.     extension for System 7.1, which comes with the Drag Manager and Powerbook File Assistant.
  11.     
  12.     Added support for A/UX 3.0.1 and another A/UX-like operating system.
  13.     
  14.     Fixed a bug that occured when stepping over a function in an application's main
  15.     routine, when the main routine does not have a LINK instruction.
  16.     
  17.     Added support for a non-standard jump table format, which is generated by a certain 
  18.     non-MPW linker.
  19.     
  20.     Fixed a problem that occured when you tried to enter the low-level debugger and 
  21.     the PC is at a breakpoint.  After getting the dialog telling you to clear the
  22.     breakpoint and clearing the breakpoint, the dialog would keep coming up each time 
  23.     you tried to enter the low-level debugger, even though you cleared the breakpoint.
  24.     
  25.  
  26. 1.0d22 Changes
  27.  
  28.     Fixed an incompatibility between System 7 Pro and DebuggerINIT.  
  29.     
  30.     Removed support for AOCE under System 7.1.  Older AOCEs ran on top of System 7.1,
  31.     but it now ships with the System 7.1.1 System file.
  32.     
  33.     Fixed a case sensitivity problem that occured when a Sym file was renamed and
  34.     the "SYM" suffix was not all upper cased.
  35.     
  36.  
  37. 1.0d21 Changes
  38.  
  39.     Fixed an incompatibility between DebuggerINIT and Thread Manager 1.2.  Under
  40.     version 1.2, you could not open a stack crawl for an inactive thread!  
  41.     This is because one of the Thread Manager data structures changed between 
  42.     1.1 and 1.2.  As a result:
  43.     
  44.     ••••• VoodooMonkey now only supports Thread Manager 1.2 !!! •••••
  45.     
  46.     Of course, you can still use VoodooMonkey without the Thread Manager installed.
  47.     If you have Thread Manager 1.1 installed, VoodooMonkey will work, but thread 
  48.     specific features will be disabled
  49.     
  50.     Reenabled the MacApp object inspector.  This had been disabled in previous
  51.     releases, because it required changes in MacApp after 3.0.1.  These changes
  52.     just resurfaced in MacApp 3.1a1.  To use the object inspector, you must build
  53.     your MacApp 3.1 application with the -Inspector option.
  54.     
  55.     Fixed a few crashing bugs.
  56.     
  57.     Fixed a bug that caused a circular display of "Could not complete your request
  58.     because of a program error" dialogs.
  59.     
  60.  
  61. 1.0d20 Changes
  62.  
  63.     Added support for debugging ASLM shared libraries.  I tested this with
  64.     ASLM 1.1b7, but it will probably work with ASLM 1.0 as well.
  65.     
  66.     Variable windows now close automatically when the variable goes out of scope.
  67.     This avoids the slowness that occurs when stepping and out of scope variable
  68.     windows are open.  In SourceBug, variable windows stay open because they can 
  69.     come back in scope when you step back into the function the variable is from, 
  70.     but this never seemed to work in VoodooMonkey.
  71.     
  72.     When stepping, the stack crawl window is no longer brought infront of variable
  73.     windows.  This allows you watch variable values change more easily while you
  74.     are stepping.
  75.     
  76.     Fixed a bug resulting in occasional crashes in the DebuggerINIT when you stop
  77.     debugging a program.
  78.  
  79.     Stripped out references to secret Apple projects from this document, so it
  80.     could be released outside of Apple.
  81.     
  82.  
  83. 1.0d19 Changes
  84.  
  85.     Added support for displaying and editing variables that contain C bitfields.
  86.     
  87.     Removed a bogus DebugStr that said "wrong version of the Thread Manager".  
  88.     This message would sometimes occur if a program crashes badly, and ExitToShell
  89.     (either MacsBug "es" or the VoodooMonkey's Kill command) fails to kill the
  90.     process.
  91.     
  92.  
  93. 1.0d18 Changes
  94.  
  95.     Fixed a freak incompatibility between DebuggerINIT 1.0d17 and the (almost)
  96.     final Thread Manager.  Quitting applications is now safe practice.
  97.     
  98.  
  99. 1.0d17 Changes
  100.     
  101.     Fixed a bug that sometimes prevented disassembling code in the browswer
  102.     for an application that has not been launched yet.
  103.     
  104.     The DebuggerINIT now disables the Thread Manager's scheduler when it is 
  105.     handling events or exceptions.  This is done to avoid some reentrancy 
  106.     problems that might occur, like a preemtive thread creating a new thread
  107.     while the DebuggerINIT is handling a breakpoint.
  108.  
  109.     The "Clear All Breakpoints" command now clears all breakpoints in all 
  110.     programs being debugged.  This decision clears up ambiguity when debugging
  111.     with multiple sym files for one process, or multiple processes with one
  112.     Sym file
  113.     
  114.     VoodooMonkey no longer handles breakpoints or exceptions that occur in 
  115.     preemptive threads.  Breakpoints are ignored, and exceptions go to the 
  116.     low-level debugger.  This is for your own protection, since it is not
  117.     safe to switch to another process in a preemtive thread.
  118.     
  119.     Choosing "Open Process Browser", "Show Registers for…" or 
  120.     "Show FPU Registers for…" no longer creates a second window, if a window
  121.     is already open.
  122.     
  123.     The log window is now removed from the windows menu when it is closed.
  124.  
  125.     The "Show FPU Registers" menu item is now disabled if your machine doesn't
  126.     have an FPU.
  127.     
  128.     VoodooMonkey now prevents you from switching to the low-level debugger if
  129.     the PC is at a breakpoint.  This restriction is added because the DebuggerINIT
  130.     has no way to restore the breakpoint after stepping past it if you are in
  131.     MacsBug or TMON.  The user now must clear or step past the breakpoint before
  132.     switching to the low-level debugger.
  133.     
  134.     VoodooMonkey now immediately clears the stack crawl when the process resumes
  135.     execution.
  136.     
  137.     
  138. 1.0d16 Changes
  139.  
  140.     Revved to another change in the Thread Manager.  
  141.     ••••• VoodooMonkey now requires Thread Manager 1.0b3 or later!!! •••••
  142.  
  143.     VoodooMonkey is now compatible with the special AOCE Process Manager.
  144.     
  145.     You can now copy text from the source or assembler view, or the log window.
  146.  
  147.     The Log Window is now working (it had been in hibernation since the SourceBug days).
  148.     
  149.     Execution timing information is now displayed in the log window, rather
  150.     than a modal dialog.
  151.     
  152.     Fixed a problem handling SysBreakStr and SysBreakFunc when they are called
  153.     by a process that is not being debugged.
  154.     
  155.     Fixed a problem that prevented opening stack crawl windows for some threads
  156.     after targeting an already running threaded application.
  157.  
  158.  
  159. 1.0d15 Changes
  160.  
  161.     Cleaned up and tweaked the source so VoodooMonkey and DebuggerINIT would
  162.     compile with Symantec's SCpp 1.0b2.  However, due to a code generation bug
  163.     I ran into, I'm still building with MPW CFront.
  164.  
  165.  
  166. 1.0d14 Changes
  167.  
  168.     (Hopefully) fixed an occasional crash in the stack crawl for multithreaded
  169.     applications.
  170.  
  171.     Sped up opening views of very large functions.
  172.     
  173.     Moved the grow box back to the corner of the window, instead of inset within
  174.     the bottom right pane.
  175.     
  176.  
  177. 1.0d13 Changes
  178.  
  179.     When you target a process, either with the Target menu command or by 
  180.     entering via TMON, VoodooMonkey will try to open the Sym file for the
  181.     process if it isn't already open.
  182.     
  183.     Fixed a problem that occured when debugging applications without SIZE 
  184.     resources, or didn't have the canBackground bit set.  To avoid the
  185.     flashing effect, VoodooMonkey does not constantly switch the program
  186.     you are debugging to the front when you are stepping.  However, if 
  187.     the program does not background, the program does not wake up, and 
  188.     the step never completes.  Now, if the canBackground is not set, 
  189.     VoodooMonkey will force the program to the front.  
  190.     
  191.     Revved to a recent change in the Thread Manager.  The DebuggerINIT works
  192.     works with Thread Manager 1.0a3 or later.
  193.  
  194.     Fixed some bugs in processing events received from the DebuggerINIT.
  195.     Stack crawl windows now close when the associated thread is terminated,
  196.     and the object inspector is now being notified when objects are freed.
  197.     
  198.     The edit text in the "Evaluate…" no longer contains garbage characters.
  199.     
  200.  
  201. 1.0d12 Changes
  202.  
  203.     Added support for modifying variable values in variable windows.  
  204.     Just click on the variable value (to the right of the "=" sign) to
  205.     edit in place.  The view as options control the format in which the
  206.     variable is edited.  This feature has not been heavily tested yet,
  207.     so you might run into a few kinks here and there.
  208.     
  209.         WARNING:  Beware when editing StringHandles.  VoodooMonkey does not 
  210.         prevent you from changing a string to a longer string, which could 
  211.         result in writing beyond the end of the block and trashing the heap.
  212.     
  213.     The view as menu items now have a check to indicate how the selected node
  214.     in the memory view is being displayed.
  215.     
  216.     Changed the name of the "View as…" menu item to "Coerce to type…" to 
  217.     make it more obvious what this feature does.
  218.     
  219.     Fixed a problem displaying unions contained in structs.  The offset into
  220.     the struct was not being calculated properly, resulting in wrong values.
  221.     
  222.     "Evaluate this…" now has Command-T as a command key equivalent.
  223.     
  224.     Process Browser enhancements:
  225.         • Targeted processes are now shown in bold.  
  226.         • For a suspended process, the current thread is shown in bold.
  227.         • Processes are now sorted by name.
  228.         • Threads are now sorted by ThreadID.
  229.     
  230.     Added a new about box.
  231.     
  232.  
  233. 1.0d11 Changes
  234.  
  235.     The DebuggerINIT is now compatible with the 1.0a3 version of the 
  236.     Thread Manager.  The DebuggerINIT is no longer compatible with versions
  237.     before 1.0a3.
  238.     
  239.     Fixed some bugs related to debugging multi-threaded applications.
  240.     
  241.     The DebuggerINIT now protects itself from bus errors when doing a
  242.     stack crawl.  This reduces the possibility of VoodooMonkey crashing 
  243.     when debugging an application that trashed its own stack.
  244.     
  245.     Added an execution timing feature (thanks to code provided by John Glenn).  
  246.     If the "Time Execution" menu item is turned on in the "Control" menu,
  247.     VoodooMonkey will time execution from the time you "Run" until you hit 
  248.     the next breakpoint.  You can also time execution using the "Go Until" 
  249.     feature, (double clicking on a diamond is "Go Until").  According to 
  250.     John, this feature is accurate to within approximately 20 microseconds.
  251.     Since tracing greatly affects execution time, "Time Execution" does not 
  252.     work with stepping.  It only works with "Run" or "Go Until".
  253.     
  254.     
  255. 1.0d10 Changes
  256.     
  257.     VoodooMonkey now saves window positions for Browser, Stack Crawl, 
  258.     and Process Browser windows.
  259.     
  260.     You can now drag the PC arrow within a function to change the PC.
  261.     VoodooMonkey does not adjust A6 or the SP, so be careful moving the PC
  262.     over instructions that change the stack.
  263.     
  264.     Changing register values in the register window now works properly.
  265.     
  266.     Fixed bug in the stack crawl code that caused sporadic problems when 
  267.     stepping out of a function.
  268.     
  269.     
  270. 1.0d9 Changes
  271.  
  272.     Fixed a few crashing bugs.
  273.     
  274.     invalid pointers now display as "INVALID".    
  275.         
  276.     Menu commands for the register windows are now in the Process menu
  277.     instead of the Edit menustays in Windows menu
  278.     
  279.     You can now evaluate registers from the disassembly view, by selecting
  280.     the register name (like "A4") and selecting the "Evaluate" command.
  281.     The register will appear as a long, but can be coerced to another type 
  282.     using the "View as…" command.
  283.     
  284.     File names are now sorted properly in the browser.
  285.  
  286.     VoodooMonkey's version number now appears in the about box.
  287.  
  288.  
  289. 1.0d8 Changes
  290.  
  291.     Type casting is now available.  You can select any node in a variable window
  292.     and use the "View As…" menu command to coerce it to any type that appears
  293.     in the Sym file.
  294.  
  295.     VoodooMonkey is now able to evaluate most register based variables that
  296.     are in activations further up in the stack crawl.  This is heuristic based,
  297.     so it might not always work properly.
  298.     
  299.     Merged "Launch" and "Resume" menu commands into "Run" (just like SourceBug).  
  300.     "Run" and "Kill" now work from the browser, and stepping works when a variable
  301.     window is in front of the stack crawl.
  302.     
  303.     Fixed a clipping problem in variable windows that occured when the value of
  304.     the variable changed or a "View As" command was done by the user.
  305.     
  306.     Variable windows now display "out of scope" when you step out of the
  307.     scope the variable is declared in.  If you go back in that scope, 
  308.     the window will start displaying the variable again.
  309.     
  310.     Fixed a bug that caused autotargeting not to work for MacApp programs.
  311.  
  312.  
  313. 1.0d7 Changes
  314.     
  315.     VoodooMonkey now automatically targets running processes if it hits a breakpoint
  316.     in a non-targeted process.  Now to target a running app, just open the Sym file 
  317.     and set some breakpoints.  The process will be targeted when the breakpoint is hit,
  318.     so you no longer have to go to the Process Browser to target the process.
  319.     
  320.     Auto targeting also works if you enter VoodooMonkey from TMON, using the 
  321.     "SourceBug macro for TMON Professional" that ships with SourceBug.
  322.     
  323.     Kludged around a problem in CFront that caused some files to be displayed in the 
  324.     browser as "C".
  325.         
  326.     Fixed a problem that occured when debugging standalone code resources in 24 bit addressing.
  327.     
  328.     C unions and Pascal variant records are now displayed properly.
  329.     
  330.     Pascal subrange variables are now displayed properly.
  331.     
  332.     Enumerated types are now displayed properly.  However, the MPW C compiler doesn't
  333.     generate symbolics for enums, so you will only notice this improvement in Pascal.
  334.     
  335.     Arrays are now displayed properly.  You can expand and collapse arrays using the
  336.     outline triangles, and you can now display arrays of structs, or arrays of other
  337.     complex types.
  338.     
  339.  
  340. 1.0d6 Changes
  341.     
  342.     VoodooMonkey no longer asks you for a the executable, if it can find it in the
  343.     same directory as the Sym file.  If your Sym file is called Banana.SYM, 
  344.     VoodooMonkey will look for Banana in the same directory.  If it is not found, 
  345.     VoodooMonkey will ask for the location of Banana.
  346.     
  347.     Fixed a lot of memory leaks.
  348.     
  349.     Fixed a bug in the MPW Unmangle.o library that caused VoodooMonkey to go into an 
  350.     infinite loop when unmangling the names of certain functions.
  351.     
  352.     Fixed a bug in the stack crawl that occured when debugging recursive functions.
  353.     The pc was not properly updating when changing between activations of the same
  354.     recursive function.
  355.     
  356.     Fixed a bug that caused 1 or 2 byte register based variables to display the 
  357.     wrong value.
  358.  
  359.     The horizontal scroll bars in the source code panes of the browser and stack crawl
  360.     windows now work.
  361.     
  362.     Breakpoints no longer show up as "TRAP #5" in the disassembly.
  363.     
  364.     The disassembler now can disassemble routines in segments that aren't loaded or in 
  365.     applications that are not running.  ReadPartialResource is used, so the disassembler
  366.     does not affect the heap of the program you are debugging.
  367.     
  368.     Fixed the Untarget <process> command.
  369.     
  370.     Closing the stack crawl for a running process now untargets the process.  
  371.     Closing the stack crawl for a suspended process (as before) kills the process,
  372.     after asking "are you sure…".
  373.     For threaded programs, only closing the stack crawl for the main thread causes the
  374.     process to be untargeted or killed.
  375.  
  376.  
  377. 1.0d5 Changes
  378.  
  379.     Fixed a bug in runtime typing of HandleObjects in programs that have both
  380.     HandleObjects and PascalObjects.
  381.     
  382.  
  383. 1.0d4 Changes
  384.     
  385.     Put in support for dynamically typing PascalObjects at runtime.  
  386.     
  387.     VoodooMonkey now fixes up null type references in the type information.  
  388.     For example, sometimes when viewing a struct that has a RgnHandle as a field,
  389.     expanding or double clicking on the RgnHandle didn't work.  Now it does!
  390.     
  391.     Launching an application from the browser after it was already running used
  392.     to confuse VoodooMonkey.  Now, Launch is grayed out if the application 
  393.     is already running.
  394.     
  395.     Fixed a bug that caused a crash when closing the browser with a
  396.     variable window open.
  397.  
  398. 1.0d3 Changes
  399.  
  400.     Added a heuristic for properly evaluating handle based objects.  When
  401.     you forward declare a class in C++, CFront does not know the class is
  402.     handle based, and generates symbolics for a pointer based class.  
  403.     A heuristic is now used to detect that a pointer to a record is really a
  404.     handle, and an extra dereference is added.
  405.     
  406.     Fixed a bug that prevented you from targeting a running process.  
  407.     (To target a running process, open the Sym file for the process.
  408.     Then select the process in the Process Browser and either double-click
  409.     on it, or choose "Target <process name>" in the "Process" menu.
  410.     
  411.     Added a cheesy "View As" mechanism, similar to SourceBug.
  412.     
  413.     Fixed a bug that occured if you closed the browser before the stack crawl
  414.     window.
  415.     
  416.     Rebuilt the DebuggerINIT with newer Thread Manager headers.  This fixed
  417.     a few problems debugging threads.
  418.  
  419.  
  420. 1.0d2 Changes
  421.  
  422.     Fixed some annoying bugs
  423.     
  424.     Disabled some features that weren't quite working
  425.     
  426.     Added a "Windows" menu
  427.